/**
 * 常量
 */


// ========== BPM 模块，初始化的数据应该从后端获取，然后再和这里的比对，双重校验 ==========

export enum BpmnModelTypeEnum {
  BPMN= 1, // BPMN 设计器
  SIMPLE= 2 // 简易设计器
}

export enum BpmnModelFormTypeEnum {
  NORMAL= 1, // 流程表单
  CUSTOM= 2 // 业务表单
}

export enum BpmnProcessInstanceStatusEnum  {
  NOT_START=1, // 未开始
  RUNNING=1, // 审批中
  PASS=2, // 审批通过
  REJECT=3, // 终止
  CANCEL=4 // 已取消
}

export enum BpmnUserTaskDuplicateApproveTypeEnum {
  NONE = 0, // 不自动通过
  APPROVE_ALL = 1, // 仅审批一次，后续重复的审批节点均自动通过
  APPROVE_SEQUENT = 2 // 仅针对连续审批的节点自动通过
}



export enum StatusEnum {
    Draft = 0, // 草稿
    Pending = 1, // 待审批
    Approved = 2, // 已批准
    Rejected = 3, // 已拒绝
}



export enum BpmnProcessListenerTypeEnum {
    EXECUTION = "execution",
    TASK="task"
}




export enum CandidateStrategy {

  /**
   * 指定用户
   */
  USER = 1,
  /**
   * 指定角色
   */
  ROLE = 2,
    /**
   * 指定岗位
   */
  POST = 3,
  /**
   * 部门成员
   */
  DEPT_USER = 4,
  /**
   * 部门的负责人
   */
  DEPT_LEADER = 5,
  /**
   * 连续多级部门的负责人
   */
  MULTI_DEPT_LEADER = 6,
  /**
   * 发起人部门负责人
   */
  START_USER_DEPT_LEADER = 7,
  /**
   * 发起人连续多级部门的负责人
   */
  START_USER_MULTI_DEPT_LEADER = 8,
    /**
   * 指定用户组
   */
  USER_GROUP = 9,
    /**
   * 流程表达式
   */
  EXPRESSION = 10,
  /**
   * 审批人自选
   */
  APPROVE_USER_SELECT = 11,
  /**
   * 发起人自选
   */
  START_USER_SELECT = 12,


}





//=======================对应后端，左侧为控制器字段名，值就是类名=======================
export enum BpmnEnumDataKey {

    BPMN_USER_TASK_CANDIDATE_STRATEGY = "BpmnUserTaskCandidateStrategyEnum",
    BPMN_MODEL_TYPE = "BpmnModelTypeEnum",
    BPMN_MODEL_FORM_TYPE = "BpmnModelFormTypeEnum",
    BPMN_PROCESS_LISTENER_TYPE = "BpmnProcessListenerTypeEnum",
    BPMN_PROCESS_LISTENER_VALUE_TYPE = "BpmnProcessListenerValueTypeEnum",
    
}